/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logica;

import fisica.CapaFisica;
import fisica.ProfesionalTratamientoQuirurgicoFisica;
import hibernate.objeto.ProfesionalTratamientoQuirurgico;
import hibernate.objeto.TratamientoQuirurgico;
import java.util.Vector;

/**
 *
 * @author Gonzalo
 */
public class ProfesionalTratamientoQuirurgicoLogica extends CapaLogica {

    /**
     * Crea y persiste los profesionales de un tratamiento quirurgico.
     *
     * @param datosProfesionalTratamientoQuirurgico Los datos de los profesionales
     *
     * @param tratamientoQuirurgico  El id del objeto
     * creado para su posterior recuperación
     * @return true si se agregó correctamente, false en caso contrario
     */
    public static boolean agregarProfesionalTratamientoQuirurgico(
            Object[] datosProfesionalTratamientoQuirurgico,
            TratamientoQuirurgico tratamientoQuirurgico) {
        //Crea el objeto
        ProfesionalTratamientoQuirurgico profesionalTratamientoQuirurgico =
                crearObjetoProfesionalTratamientoQuirurgico(
                datosProfesionalTratamientoQuirurgico);

        profesionalTratamientoQuirurgico.setTratamientoQuirurgico(
                    tratamientoQuirurgico);

        //Persiste el objeto
        if (CapaFisica.guardarOActualizarObjeto(profesionalTratamientoQuirurgico)) {
            
            return true;
        } else {
            return false;
        }
    }

    /**
     * Crea el objeto ProfesionalTratamientoQuirurgico.
     *
     * @param datosProfesionalTratamientoQuirurgico Los datos de los profesionales
     * @param tratamientoQuirurgico El objeto que contendra
     * las determinaciones
     * @return El objeto creado
     */
    private static ProfesionalTratamientoQuirurgico
            crearObjetoProfesionalTratamientoQuirurgico(
            Object[] datosProfesionalTratamientoQuirurgico) {

        ProfesionalTratamientoQuirurgico retorno =
                new ProfesionalTratamientoQuirurgico();

        retorno.setNombreProfesionalTratamientoQuirurgico(
                datosProfesionalTratamientoQuirurgico[CapaLogica.
                TRATAMIENTO_Y_PRACTICA_TRATAMIENTO_QUIRURGICO_NOMBRE_PROFESIONAL].toString());

        retorno.setApellidoProfesionalTratamientoQuirurgico(
                datosProfesionalTratamientoQuirurgico[CapaLogica.
                TRATAMIENTO_Y_PRACTICA_TRATAMIENTO_QUIRURGICO_APELLIDO_PROFESIONAL].toString());

        return retorno;
    }

    /**
     * Retorna un vector de objetos ProfesionalTratamientoQuirurgico
     * según el id del tratamiento.
     *
     * @param idTratamientoQuirurgico El id del tratamiento
     * @return El objeto Paciente consultado
     */
    public static Vector<ProfesionalTratamientoQuirurgico>
            getVectorProfesionalTratamientoQuirurgicoPorIdTratamientoQuirurgico(
            int idTratamientoQuirurgico) {
        return ProfesionalTratamientoQuirurgicoFisica.
                getVectorProfesionalTratamientoQuirurgicoPorIdTratamientoQuirurgico(
                idTratamientoQuirurgico);
    }


    /**
     * Retorna el objeto ProfesionalTratamientoQuirurgico según el id.
     *
     * @param idProfesionalTratamientoQuirurgico
     * @return El objeto ProfesionalTratamientoQuirurgico consultado,
     * null si no existe
     */
    static ProfesionalTratamientoQuirurgico getProfesionalTratamientoQuirurgicoPorId(
            int idProfesionalTratamientoQuirurgico) {
        return ProfesionalTratamientoQuirurgicoFisica
                .getProfesionalTratamientoQuirurgicoPorId(
                idProfesionalTratamientoQuirurgico);
    }

    /**
     * Retorna todo el objeto ProfesionalTratamientoQuirurgico en string.
     *
     * @param profesionalTratamientoQuirurgico  El objeto a escribir
     */
    public static String getProfesionalTratamientoQuirurgicoString(
            ProfesionalTratamientoQuirurgico profesionalTratamientoQuirurgico) {
        String profesionalTratamientoQuirurgicoString =
                "idProfesionalTratamientoQuirurgico: " +
                profesionalTratamientoQuirurgico.getIdProfesionalTratamientoQuirurgico() + "\n" +
                "nombreProfesionalTratamientoQuirurgico: " +
                profesionalTratamientoQuirurgico.getNombreProfesionalTratamientoQuirurgico() + "\n" +
                "apellidoProfesionalTratamientoQuirurgico: " +
                profesionalTratamientoQuirurgico.getApellidoProfesionalTratamientoQuirurgico() + "\n";

        return profesionalTratamientoQuirurgicoString;
    }

    /**
     * Retorna todo el objeto ProfesionalTratamientoQuirurgico en HTML.
     *
     * @param profesionalTratamientoQuirurgico  El objeto a escribir
     */
    public static String getProfesionalTratamientoQuirurgicoHTML(
            ProfesionalTratamientoQuirurgico profesionalTratamientoQuirurgico) {

        String profesionalTratamientoQuirurgicoHTML = "";

        if (profesionalTratamientoQuirurgico != null) {
            profesionalTratamientoQuirurgicoHTML =
                "<font size=\"3\" face=\"arial\" color=\"blue\">"
                    + "PROFESIONAL</font><br><br><hr /><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Nombre: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                profesionalTratamientoQuirurgico.getNombreProfesionalTratamientoQuirurgico() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Apellido: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                profesionalTratamientoQuirurgico.getApellidoProfesionalTratamientoQuirurgico() + "</font><br><br>";
        } else {
            profesionalTratamientoQuirurgicoHTML = "<font size=\"3\" face=\"arial\" color=\"blue\">PROFESIONAL</font><br><br> " +
                    "<hr /><font size=\"3\" face=\"arial\">No posee</font><br></font><hr />";
        }

        return profesionalTratamientoQuirurgicoHTML;
    }
}
